/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package business;

import dao.LaboratorioDao;
import dominio.Laboratorio;
import java.util.List;
import javax.persistence.*;
import javax.swing.JTable;
/*
 *
 * @author vanessa
 */
public class LaboratorioBO {

    private int ok = 0;
    LaboratorioDao laboratoriodao;

    public int crearLaboratorio( Integer capacidadLab,
            String nombreLab, String descripcionLab, String disponibleLab) {
        // find an user
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        em.getTransaction().begin();
        Laboratorio a = dao.crearLaboratorio(capacidadLab,nombreLab,descripcionLab, disponibleLab );
        em.getTransaction().commit();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (a == null) {
            ok = 0;
        }
        else if (a.getnombreLab().equals(nombreLab)) {
            ok = 1;
        }
        return ok;
    }

    public List obtenerListLaboratorio() {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        laboratoriodao = new LaboratorioDao(em);
        em.getTransaction().begin();

        List lista=null;               //coleccion de objetos con atributos de preinscrito
        lista=(List) laboratoriodao.encontrarLaboratorio();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv

        return lista;
    }

    public Integer resultado() {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        return dao.devolverId();
    }
   
    public void actualizarLaboratorio(JTable tablaentrada){
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        laboratoriodao = new LaboratorioDao(em);
        for(int iterador=0;iterador<tablaentrada.getRowCount();iterador++) {
            if(tablaentrada.getValueAt(iterador, 5).equals("si")||
                    tablaentrada.getValueAt(iterador, 5).equals("s")||
                    tablaentrada.getValueAt(iterador, 5).equals("S")||
                    tablaentrada.getValueAt(iterador, 5).equals("SI")) {
                System.out.println((Integer) tablaentrada.getValueAt(iterador, 0));
                laboratoriodao.ActualizarLaboratorio((Integer) tablaentrada.getValueAt(iterador, 0));
                //columna 0, columna con numero de identidad
            }
        }
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
    }

    public int borrarLaboratorio(Integer idLaboratorio) {
        // find an user
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        em.getTransaction().begin();
        dao.borrarLaboratorio(idLaboratorio);
        em.getTransaction().commit();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv

        return ok;
    }

    public int encontrarLaboratorio(Integer idLaboratorio) {
        // find an user
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        Laboratorio a = dao.encontrarLaboratorio(idLaboratorio);
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (a == null) {
            ok = 0;
        }
        else if (a.getIdLaboratorio().equals(idLaboratorio)) {
            ok = 1;
        }
        return ok;
    }

    public Laboratorio consultarLaboratorio(Integer idLaboratorio) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        Laboratorio a = dao.encontrarLaboratorio(idLaboratorio);
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        /*if (a == null) {
            ok = 0;
        } else if (a.getId().equals(idAula)) {
            ok = 1;
        }*/
        return a;
    }

    public int actualizarLaboratorio(Integer idLaboratorio, Integer capacidadLab,
        String nombreLab, String descripcionLab, String disponibleLab) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        em.getTransaction().begin();
        Laboratorio a = dao.actualizarLaboratorio(idLaboratorio, capacidadLab,
                nombreLab, descripcionLab, disponibleLab);
        em.getTransaction().commit();

        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (a == null) {
            ok = 0;
        }
        else if (a.getIdLaboratorio().equals(idLaboratorio)) {
            ok = 1;
        }
        return ok;
    }

    public List<Laboratorio> findAll() {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        List<Laboratorio> a = dao.findAll();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        /*if (a == null) {
            ok = 0;
        } else if (a.getId().equals(idAula)) {
            ok = 1;
        }*/
        return a;
    }

    public Laboratorio encontrarLabPorNombre(String nombreLab) {
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        Laboratorio a = dao.encontrarLaboratorio(nombreLab);
        em.close();
        emf.close();
        return a;
    }

    public Laboratorio encontrarLabPorDescripcion(String string) {
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        Laboratorio a = dao.encontrarLaboratorioPorDescripcion(string);
        em.close();
        emf.close();
        return a;
    }
}
